package cn.tedu.sp04.order.controller;

import cn.tedu.sp01.pojo.Item;
import cn.tedu.sp01.pojo.Order;
import cn.tedu.sp01.pojo.User;
import cn.tedu.sp01.service.OrderService;
import cn.tedu.web.util.JsonResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.util.Arrays;
import java.util.List;

@Slf4j
@RestController
public class OrderController {

    @Autowired
    private OrderService orderService;

    @GetMapping("/{orderId}")     //orderId是字符串类型
    public JsonResult<Order> getOrder(@PathVariable String orderId){
        //看一眼orderId
        log.info("get order,id="+orderId);

        //通过orderId查询出order对象
        Order order = orderService.getOrder(orderId);
        //告诉客户查询服务器这边成功了，并且返回order数据
        return JsonResult.ok().data(order);
    }

    @GetMapping("/")
    public JsonResult addOrder(){
        //模拟post提交的数据
        Order order = new Order();
        order.setId("123abc"); //假装orderId是123abc

        //编一个User对象，只有id号是7，username和password都是空
        User user = new User(7,null,null);
        order.setUser(user);

        //编一个Item集合
        //先把Item数据放进数组，再把这个数组转变成集合，是因为可以用一句代码搞定。（而由于我不熟，依然把这句拆成了很多句==！）
        //而如果直接放进集合中，需要多条写多条语句（稍显麻烦）
        Item[] items = new Item[]{new Item(1,"aaa",2),
                                  new Item(2,"bbb",1),
                                  new Item(3,"ccc",3),
                                  new Item(4,"ddd",1),
                                  new Item(5,"eee",5)};
        List<Item> itemList = Arrays.asList(items);
        order.setItems(itemList);

        orderService.addOrder(order);

        return JsonResult.ok();


    }

}
